From 9b81932ff1baae4b708bc586524a2fa160699137 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Tue, 8 Jul 2025 13:30:55 +0200 Subject: [PATCH] android: Enable building binder as module Bug-Debian: https://bugs.debian.org/901492 We want to enable use of the Android binder driver to support Waydroid, but it should not be built-in as that would waste resources and increase security attack surface on systems that don't need it. - Change the Makefiles to build the driver as an object with the "_linux" suffix (which is what Waydroid expects) - Change config symbol types to tristate - Add a module description, because modpost warns about missing descriptions Gbp-Pq: Topic debian Gbp-Pq: Name android-enable-building-binder-as-module.patch --- drivers/android/Kconfig | 2 +- drivers/android/Makefile | 7 ++++--- drivers/android/binder.c | 3 +++ drivers/android/binder_alloc.c | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/android/Kconfig b/drivers/android/Kconfig index e2e402c9d17..7e5d76ecd45 100644 --- a/drivers/android/Kconfig +++ b/drivers/android/Kconfig @@ -2,7 +2,7 @@ menu "Android" config ANDROID_BINDER_IPC - bool "Android Binder IPC Driver" + tristate "Android Binder IPC Driver" depends on MMU depends on NET default n diff --git a/drivers/android/Makefile b/drivers/android/Makefile index e0c650d3898..eae81bed1fb 100644 --- a/drivers/android/Makefile +++ b/drivers/android/Makefile @@ -1,7 +1,8 @@ # SPDX-License-Identifier: GPL-2.0-only ccflags-y += -I$(src) # needed for trace events -obj-$(CONFIG_ANDROID_BINDERFS) += binderfs.o -obj-$(CONFIG_ANDROID_BINDER_IPC) += binder.o binder_alloc.o binder_netlink.o -obj-$(CONFIG_ANDROID_BINDER_ALLOC_KUNIT_TEST) += tests/ +obj-$(CONFIG_ANDROID_BINDER_IPC) += binder_linux.o +binder_linux-y := binder.o binder_alloc.o binder_netlink.o +binder_linux-$(CONFIG_ANDROID_BINDERFS) += binderfs.o +binder_linux-$(CONFIG_ANDROID_BINDER_ALLOC_KUNIT_TEST) += tests/ obj-$(CONFIG_ANDROID_BINDER_IPC_RUST) += binder/ diff --git a/drivers/android/binder.c b/drivers/android/binder.c index 33e4dad0915..44ac3e3c96b 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -7171,3 +7171,6 @@ device_initcall(binder_init); #define CREATE_TRACE_POINTS #include "binder_trace.h" + +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("Android Binder IPC Driver"); diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c index d5ed64543bb..62736c76868 100644 --- a/drivers/android/binder_alloc.c +++ b/drivers/android/binder_alloc.c @@ -39,7 +39,7 @@ enum { }; static uint32_t binder_alloc_debug_mask = BINDER_DEBUG_USER_ERROR; -module_param_named(debug_mask, binder_alloc_debug_mask, +module_param_named(alloc_debug_mask, binder_alloc_debug_mask, uint, 0644); #define binder_alloc_debug(mask, x...) \ -- 2.30.2